#include <iostream>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/wait.h>

void handler(int signo)
{
    std::cout << "I am a process, I wait a signal is : " << signo << std::endl;
    exit(1);
}

int main()
{

    if (fork() == 0)
    {
        printf("i am a child process,my pid: %d\n",getpid());
        sleep(5);
        kill(getpid(), SIGQUIT);
    }

    int status = 0;
    int wid = waitpid(-1,&status,0);
    printf("child process quit, child pid: %d, exit code dump : %d\n",wid,(status >> 7)&1);
    // signal(SIGTSTP,handler);
    // while(true)
    // {
    //     std::cout << "hello world" << std::endl;
    //     sleep(1);
    // }
    return 0;
}

// int main()
// {

//     while(true)
//     {
//         std::cout << "hello world" << std::endl;
//         sleep(1);
//     }
//     // signal(2,handler);
//     // while(true)
//     // {
//     //     std::cout << "等待进程中....." << std::endl;
//     //     pause();
//     // }
//     return 0;
// }